/*****************************************************************************
 * file  : systask.c
 * creat : apleilx
 * data  : 2017/11/05
 *****************************************************************************/
#ifndef WIN32_ENV
#include "ff.h"

/*****************************************************************************
 * @brief   fun.
 *****************************************************************************/
void pdf_author_demo(void);

/*****************************************************************************
 * @brief   var.
 *****************************************************************************/
extern FIL file;
extern FATFS fs;

/*****************************************************************************
 * @brief   system task.
 *
 * @ Pass/ Fail criteria: none
 *****************************************************************************/
void spdf_task(char en)
{
	f_mount(&fs, "", 0);
	
	if (f_open(&file, "SPDFDEMO.PDF", FA_CREATE_ALWAYS | FA_WRITE) == FR_OK)
	{
		pdf_author_demo();
	}

	f_close(&file);
	
	f_mount(0, "", 0);
}

int spdf_disk_out(uint8_t *buf, int len)
{
	uint32_t len_back = 0;

	if (f_write(&file, buf, len, &len_back) != FR_OK)
	{
		len_back = 0;
	}

	return len_back;
}

#else

#include "stdio.h"
#include "stdint.h"

/*****************************************************************************
 * @brief   fun.
 *****************************************************************************/
void pdf_author_demo(void);

/*****************************************************************************
 * @brief   var.
 *****************************************************************************/
FILE *file;

/*****************************************************************************
 * @brief   system task.
 *
 * @ Pass/ Fail criteria: none
 *****************************************************************************/
void spdf_task(char en)
{
	file = fopen("SPDFDEMO.PDF", "w+");

	if (file)
	{
		printf("file creat ok!\r\n");

		pdf_author_demo();
	}
	else
	{
		printf("file creat fail!\r\n");
	}

	fclose(file);
}

int spdf_disk_out(uint8_t *buf, int len)
{
	fwrite(buf, 1, len, file);

	return len;
}

#endif
